-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: rebuild only necessary canisters #3710
base: master
Are you sure you want to change the base?
Conversation
|
The last commit ( Also note that unlike the original ( The code needs refactoring and more serious testing. |
Testing shows a bug: When specifying a dependency to build: |
4be4fa8
to
030f9af
Compare
The latest version commit You may try to use it for your home projects, but don't try it for mission-critical tasks or if you fear to be lost in wrong recompilations, because errors are still possible. |
Fixed crash on |
This MR has been "battle-tested" a little. It worked as expected in developing https://github.com/vporton/zondirectory2 and in testing of https://github.com/vporton/joining-proxy-rust without any visible errors. |
There has been found yet a bug: Compiling vporton/zondirectory2@b145a4c it was output:
|
I've removed "that's weird" from my comment, because it has been written by me in error. |
Note that the above error was caused by |
I run |
I've fixed a serious bug. |
Found bugs, while attempting deploying a real app to
|
Description
DFX doesn't compile canisters for which all dependencies are elder than the
.wasm
file. This results in big compilation speedups.The PR also adds tracing and comments intended for future improvement of compilation speed.
This PR is a WIP. There is potential for further speedup and there is missing logging. More testing is necessary.
How Has This Been Tested?
I run it before the
.wasm
file has been created and after it with a significant speedup. Alsodfx build -vv
correctly does not output anymoc
compilation logs, when invokingdfx build
for the second time.Later I did
bats make_like.bash
,add_dependency.bash
,broken_canister_dep.bash
, anddotenv.bash
automated testing.Checklist: